<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
     // 预解析案例
        // 案例1
        // var num = 10;
        // fun();

        // function fun() {
        //     console.log(num);
        //     var num = 20;
        // }
        // // 相当于执行了以下操作
        // var num;
        // function fun() {
        //     var num;
        //     console.log(num); // undefined
        //     num = 20;
        // }
        // num = 10;
        // fun();

        // 案例2
        // var num = 10;

        // function fn() {
        //     console.log(num);
        //     var num = 20;
        //     console.log(num);
        // }
        // fn();
        // // 相当于以下代码

        // var num;
        // function fn() {
        //     var num;
        //     console.log(num);  // undefined
        //     num = 20;  
        //     console.log(num);  // 20
        // }

        // num = 10;
        // fn();

        // 案例3
        var a = 18;
        f1();

        function f1() {
            var b = 9;
            console.log(a);
            console.log(b);
            var a = '123';
        }
        // 相当于以下代码
        var a;
        function f1() {
            var b;
            var a;

            b = 9;
            console.log(a); // undefined
            console.log(b); // 9
            a = '123';
        }   
    </script>
</body>
</html>